package com.ljq.anonymousInnerClassAndAPIs;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Objects;

/**
 * Description: 常用api
 * Author: A
 * Date: 2025/2/24
 * Time: 16:30
 */
public class APIs {
    public static void main(String[] args) {
//        stringEx();
//        dateEx();
//        calendarEx();
        mathEx();
    }

    public static void stringEx() {
//   字符串类
        System.out.println(Objects.equals("xx", "xx"));
        System.out.println("xx".equals("l"));
    }

    public static void mathEx() {
//    数学运算的方法
        double ceil = Math.ceil(3.13);
        double floor = Math.floor(3.13);
        int abs = Math.abs(-1);
        double pow = Math.pow(2,3);

        System.out.println(ceil);
        System.out.println(floor);
        System.out.println(abs);
        System.out.println(pow);

    }

    public static void systemEx() {
//    提供与系统相关的功能
    }

    public static void dateEx() {
//    提供时间
        Date date = new Date();
        System.out.println(date);
        System.out.println(date.getTime()); // 时间粗

//        格式化时间
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(simpleDateFormat.format(date));
        try {
            System.out.println(simpleDateFormat.parse("2025-02-24 17:25:07"));
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
    }

    public static void calendarEx(){
//        Calendar抽象类 不能实例化
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar);
//         获取特定字段
        int year = calendar.get(Calendar.YEAR);
        int month= calendar.get(Calendar.MONTH) +1;
        int day= calendar.get(Calendar.DAY_OF_MONTH) ;
        int hour= calendar.get(Calendar.HOUR) ;
        int minute= calendar.get(Calendar.MINUTE) ;
        int second= calendar.get(Calendar.SECOND) ;
        System.out.println("当前日期: " + year + "-" + month + "-" + day + " "+hour+":"+minute+":"+second);


        Calendar date1 = Calendar.getInstance();
        date1.set(2023, Calendar.JANUARY, 1);
        Calendar date2 = Calendar.getInstance();
        date2.set(2023, Calendar.FEBRUARY, 1);
        if (date1.before(date2)) {
            System.out.println("date1 在 date2 之前");
        }


//    获取2022年10月1日是星期几？
        calendar.set(2020,Calendar.OCTOBER,1);
        int dayofWeek = calendar.get(Calendar.DAY_OF_WEEK);
        switch (dayofWeek) {
            case Calendar.SUNDAY:
                System.out.println("2022年10月1日是星期日");
                break;
            case Calendar.MONDAY:
                System.out.println("2022年10月1日是星期一");
                break;
            case Calendar.TUESDAY:
                System.out.println("2022年10月1日是星期二");
                break;
            case Calendar.WEDNESDAY:
                System.out.println("2022年10月1日是星期三");
                break;
            case Calendar.THURSDAY:
                System.out.println("2022年10月1日是星期四");
                break;
            case Calendar.FRIDAY:
                System.out.println("2022年10月1日是星期五");
                break;
            case Calendar.SATURDAY:
                System.out.println("2022年10月1日是星期六");
                break;
            default:
                System.out.println("无法确定星期几");
                break;
        }
        calendar.add(Calendar.DAY_OF_MONTH,1000);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = simpleDateFormat.format(calendar.getTime());
        System.out.println(format);
    }


}
